package com.greydawn.SingletonPattern;

import java.util.Objects;

/**
 * @Author: zhongwr
 * @Create: 2021/12/6 21:53
 * @Version 1.0
 * @Description: 单例设计模式 懒汉式
 * 是否 Lazy 初始化：是
 * 是否多线程安全：否
 * 实现难度：易
 * 描述：这种方式是最基本的实现方式，这种实现最大的问题就是不支持多线程。因为没有加锁 synchronized，所以严格意义上它并不算单例模式。
 * 这种方式 lazy loading 很明显，不要求线程安全，在多线程不能正常工作。
 */
public class SingletonPatternLazy {

    private SingletonPatternLazy singletonPatternLazy;

    private SingletonPatternLazy() {
    }

    public SingletonPatternLazy getInstance() {
        if (Objects.isNull(singletonPatternLazy)) {
            singletonPatternLazy = new SingletonPatternLazy();
        }
        return singletonPatternLazy;
    }
}
